package com.yilin.tms.order.service.clearing;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yilin.tms.core.application.PageData;
import com.yilin.tms.core.entity.order.clearing.ClearingDetail;
import com.yilin.tms.core.entity.order.transit.TransitOrder;
import com.yilin.tms.core.entity.user.account.Account;

import java.util.List;

public interface IClearingService extends IService<ClearingDetail> {
    PageData<ClearingDetail> getClearingDetailPage(Account loginUser, ClearingDetail query, Integer page, Integer limit);

    ClearingDetail createClearingDetail(TransitOrder transitOrder);

    void lockClearingDetail(Account loginUser, String detailId, ClearingDetail.LockStatus lockStatus);

    void updateClearingDetail(Account loginUser, TransitOrder transitOrder, ClearingDetail fromDetail);

    void sureClearingDetail(Account loginUser, TransitOrder transitOrder, ClearingDetail clearingDetail);

    ClearingDetail getClearingDetailByTransitOrderId(String transitOrderId);

    ClearingDetail setClearingDetailCost(ClearingDetail clearingDetail);

    List<ClearingDetail> getClearingListByGatherId(String gatherRecordId);

}
